package magazijn;
/**
 * Write a description of class test here.
 * 
 * @author (Joep, Jochem, Johannes, Daniel) 
 * @version (v0.1)
 */

import java.util.*;
import java.sql.*;
import java.io.*;
 
public class Reservering{
    BufferedReader toetsenbord = new BufferedReader( new InputStreamReader( System.in) );
    
    public String artikelnaam,klantnaam,telefoonnummer,opmerking;
    public int ID, aantal;
    
    public Reservering(int ID, String artikelnaam, String klantnaam, String telefoonnummer, int aantal, String opmerking){
        this.ID             = ID;
        this.artikelnaam    = artikelnaam;
        this.klantnaam      = klantnaam;
        this.telefoonnummer = telefoonnummer;
        this.aantal         = aantal;
        this.opmerking      = opmerking;

        insertReserveringData(ID, artikelnaam, klantnaam, telefoonnummer, aantal, opmerking);
    }
    
     public Reservering(int ID){
        this.ID = ID;
        getReserveringData();
    }
    
    /**============= GETTERS ==============**/
    
    public int getID(){
        return ID;
    }
    public String getArtikelnaam(){
        return artikelnaam;
    }
    public String getKlantnaam(){
        return klantnaam;
    }
    public String getTelefoonnummer(){
        return telefoonnummer;
    }
    public int getAantal(){
        return aantal;
    }
    public String Opmerking(){
        return opmerking;
    }

    /**============= SETTERS ==============**/
    
    public void setArtikelnaam(String eenArtikelnaam)
    {
        artikelnaam = eenArtikelnaam;
        setKlantData();
    }
    public void setKlantnaam(String eenKlantnaam)
    {
        klantnaam = eenKlantnaam;
        setKlantData();
    }
    public void setTelefoonnummer(String eenTelefoonnummer)
    {
        telefoonnummer = eenTelefoonnummer;
        setKlantData();
    }
    public void setAantal(int eenAantal)
    {
        aantal = eenAantal;
        setKlantData();
    }
    public void setOpmerking(String eenOpmerking)
    {
        opmerking = eenOpmerking;
        setKlantData();
    }
    
    /**============= PRINT RESERVERING ==============**/
    
    public void printReservering() {
        System.out.println( toString() + "\n" );
    }

    public String toString() //
    {
       
        String a = String.format("%-5d %-20s %-20s %-20s %-20d %-10s",
                                  ID,artikelnaam,klantnaam,telefoonnummer,aantal,opmerking);
        return a;
       
    }
    
    public void getReserveringData()
    {
        try{
            ResultSet rs = Database.executeSQLStatement("SELECT * FROM reservering where ID =" + ID); // Selecteer alles van de tabel scores order op aantal en haal 10 rijen uit de database
            while (rs.next ()) 
            {
                artikelnaam      = rs.getString("artikelnaam");
                klantnaam        = rs.getString("klantnaam");
                telefoonnummer   = rs.getString("telefoonnummer");
                aantal           = rs.getInt("aantal");
                opmerking        = rs.getString("opmerking");
                               
            }
            //System.out.println("============================================================================================================================================================================"); 
           // stelVraag("Druk op een toets om naar het hoofdmenu te gaan");     
            rs.close();                    
        }
        catch(Exception e)
        { 
            e.printStackTrace();
        }
    }         
    
    public void setKlantData()
    {
        try{
            String sql = ("UPDATE reservering set artikelnaam= '" + artikelnaam + "', klantnaam= '" + klantnaam + "', telefoonnummer='" + telefoonnummer + "', aantal= '" + aantal + "', opmerking='" + opmerking + "' where ID='"+ ID +"'");
            Database.executeUpdateStatement( sql );
        }
        catch (Exception e){
            System.out.println("De gegevens zijn niet gewijzigd in de db");
            e.printStackTrace();
        }
    }
       
    public void insertReserveringData(int ID, String artikelnaam, String klantnaam, String telefoonnummer, int aantal, String opmerking)
    {
         try{
            String sql = ("INSERT into reservering set ID= '" + ID + "', artikelnaam= '" + artikelnaam + "', klantnaam= '" + klantnaam + "', telefoonnummer= '" + telefoonnummer + "', aantal= '" + aantal + "', opmerking= '" + opmerking + "'");
            Database.executeUpdateStatement( sql );
        }
        catch (Exception e){
            System.out.println("De gegevens zijn niet gewijzigd in de db");
            e.printStackTrace();
        }
    }

    public void delReserveringData(int ID)
    {
         try{
            String sql = ("DELETE from reservering WHERE ID='"+ ID + "'");
            Database.executeUpdateStatement( sql );
        }
        catch (Exception e){
            System.out.println("De reservering is niet verwijderd");
            e.printStackTrace();
        }
    }   
}
